/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"1D2120D1-4402-4636-BBF3-345616B3F624"}
 */
function confirma(event) {
	// analiza estado para evitar duplicación
	if (estado != 1)
     {	
	   globals.gMensaje = 'Error - la orden de servicio no se puede valorizar'
	   globals.gMensajes();
	   return
     }
	if (importe == 0 || importe==null)  // 31/08/2010
     {	
	   globals.gMensaje = 'Debe informar importe de la orden de servicio a valorizar'
	   globals.gMensajes();
	   return
     }
	
	// busca numeración - es código 8 en numeracion_pr
	var aux_comprob = 0
	var fs_nro_op 	= databaseManager.getFoundSet(currentcontroller.getServerName(),'numeracion_pr')
	fs_nro_op.loadAllRecords()
	fs_nro_op.find()
	fs_nro_op.sucursal 			= globals.gSucursal
	fs_nro_op.letra 			= "X"
	fs_nro_op.cod_comprobante 	= 8   //fijo igual que en recibos ???????
	var found = fs_nro_op.search()
	if (found != 1)
    {	
	 	globals.gMensaje = 'Sucursal o Tipo de comprobante incorrectos al buscar numeracion'
		globals.gMensajes();
		return
    }
	else
	{	
		fs_nro_op.setSelectedIndex(1)
		fs_nro_op.ultimo_numero = fs_nro_op.ultimo_numero + 1
		aux_comprob=fs_nro_op.ultimo_numero
	}
	// regraba orden
	estado = 2   // valorizada
	
	// da de alta cuenta corriente
	//// grabar el pago en ctacte  // desde la relacion ordenes_de_servicio_to_fletero + proveedor-ctacte
		
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.newRecord()      
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.proveedor_id=fletero_id
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.fecha_mov=fecha_valorizacion
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.nro_factura=aux_comprob
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.cod_mov=8 // fijo????  
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.sucursal=globals.gSucursal
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.letra="X"
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.fecha_vto=null
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.saldo=importe
		// la provincia de debe tomar de la tabla de ciudades= no está en proveedores
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.provincia_id=ordenes_de_servicio_to_fletero.proveedor_to_ciudades.provincia_id
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.cod_cancelado=0   //no existe mas?   //17/11/2010
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.importe=importe
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.neto=importe  //neto=importe?
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.iva=0  // iva=0
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.iva_porc=0
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.cond_pago_id=0
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.concepto=
					"O.S.:" + utils.numberFormat(nro_orden,"###,##0")
					+ "-" + nro_comproba_valoriz
					+ " - Pr.:" + ordenes_de_servicio_to_proveedores_rel_ord_servicio.razon_social
					+ "-" + ordenes_de_servicio_to_proveedores_rel_ord_servicio.sucursal
					+ "-Ch:" + ordenes_de_servicio_to_choferes.nombre
	// da de alta ord_servicio_numerada
		ordenes_de_servicio_to_ord_servicio_numeradas.newRecord()
		ordenes_de_servicio_to_ord_servicio_numeradas.importe=importe
		ordenes_de_servicio_to_ord_servicio_numeradas.letra="X"
		ordenes_de_servicio_to_ord_servicio_numeradas.nro_comprobante=aux_comprob
		ordenes_de_servicio_to_ord_servicio_numeradas.sucursal=globals.gSucursal
		
	// da de alta ctacte del proveedor de servicio
		var fs_ctacte= databaseManager.getFoundSet(controller.getServerName(),'ctacte_pr')
		fs_ctacte.newRecord()
		fs_ctacte.cod_mov=15
		fs_ctacte.concepto="O.S.:" + utils.numberFormat(nro_orden,"###,##0")
					+ "-" + nro_comproba_valoriz
					+ " - Fl.:" + ordenes_de_servicio_to_fletero.razon_social  // 29/11/2010
					//+ " - Pr.:" + ordenes_de_servicio_to_proveedores_rel_ord_servicio.razon_social
					//+ "-" + ordenes_de_servicio_to_proveedores_rel_ord_servicio.sucursal
					+ "-Ch:" + ordenes_de_servicio_to_choferes.nombre
		fs_ctacte.cond_pago_id=0
		fs_ctacte.fecha_mov=fecha_valorizacion
		fs_ctacte.fecha_vto=null
		fs_ctacte.importe=importe
		//fs_ctacte.ing_brut_percep=ing_brut_percep
		//fs_ctacte.itc=itc
		fs_ctacte.iva=0
		//fs_ctacte.iva_percep=iva_percep
		fs_ctacte.iva_porc=0
		fs_ctacte.letra="X"
		fs_ctacte.marcado_ctacte=null
		fs_ctacte.neto=importe 
		//fs_ctacte.neto_no_gravado=
		fs_ctacte.nro_factura=aux_comprob
		fs_ctacte.plancta_id_gastos=0
		fs_ctacte.plancta_id_percep_ing_brut=0
		fs_ctacte.proveedor_id=foundset.ordenes_de_servicio_to_proveedores_rel_ord_servicio.proveedor_id
		fs_ctacte.provincia_id=foundset.ordenes_de_servicio_to_proveedores_rel_ord_servicio.proveedores_rel_ord_servicio_to_proveedor.proveedor_to_ciudades.provincia_id
		//fs_ctacte.retecion_ing_brutos=retecion_ing_brutos
		//fs_ctacte.retencion_ganancias=retencion_ganancias
		fs_ctacte.saldo=importe
		fs_ctacte.saldo_aux=null
		fs_ctacte.saldo_resumen_aux=null
		fs_ctacte.sucursal=globals.gSucursal
		fs_ctacte.tasa_iva_id=null;		
	/////////////////////////////////////////////////////
		
	// analiza si hay retención
	//31/08/2010==================================================================
		
	//08/09/2010=================desde lo hace aqui para obtener el importe antes de grabar ctacte
	var aux_importe_anterior=importe //06/12/2010 para que no regrabe mal si dice que hay retencion y no la hay
	var aux_importe=globals.retenciones_inverso(fecha_valorizacion,fletero_id,importe);	
	if (importe != aux_importe)
	{
		globals.gMensaje = 'El importe total con retenciones es de $' + aux_importe 
		globals.gMensajes();   	
		importe = aux_importe;
	}  
	
	//08/09/2010=================hasta
		globals.greten = globals.retenciones_previo(fecha_valorizacion,fletero_id,importe);  
		globals.greten_ganan = globals.redondeo(globals.greten[0][7]); // elemento 7 tiene el importe ret ganancias
		globals.greten_iva = globals.redondeo(globals.greten[1][3]);   // elemento 3 tiene el importe ret. iva
		globals.gtotal_retenciones = globals.redondeo(globals.greten_ganan + globals.greten_iva); 
		

		
	//// llamar a metodo de retenciones finales
    var nombreForm = 'ordenes_de_servicio_valor_2'                              
	var estado_reten = globals.retenciones_final(nombreForm,fecha_valorizacion,fletero_id,importe,8,aux_comprob,globals.greten[0],globals.greten[1]);
	
    ////// grabar retenciones
    if (globals.greten_ganan !=0 && globals.greten_ganan !=null) 
    {  // grabar reten. ganancias en ctacte_pr
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.newRecord()      
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.provedor_id=fletero_id  
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.fecha_mov=fecha_valorizacion  // ??  31/08/2010 va esta fecha?
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.nro_factura=aux_comprob 
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.cod_mov=14   
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.sucursal=globals.gSucursal
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.letra="X"
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.fecha_vto=null
 		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.saldo=globals.greten_ganan; 	
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.provincia_id=ordenes_de_servicio_to_fletero.proveedor_to_ciudades.provincia_id
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.importe=globals.greten_ganan
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.neto=globals.greten_ganan 
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.iva=0 
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.iva_porc=0
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.cond_pago_id=0  
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.concepto=
				"Ret.Ganancias de Ord.Servicio: " + utils.numberFormat(nro_orden,"###,##0")
					+ " - Chofer: " + ordenes_de_servicio_to_choferes.nombre
					+ " - Prov.: " + ordenes_de_servicio_to_proveedores_rel_ord_servicio.razon_social
					+ " - " + ordenes_de_servicio_to_proveedores_rel_ord_servicio.sucursal
    }
    else
    {
    	importe = aux_importe_anterior //06/12/2010 para que no regrabe mal si dice que hay retencion y no la hay
    }
    if (globals.greten_iva !=0 && globals.greten_iva !=null)
    {  // grabar reten. iva en ctacte_pr
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.newRecord()      
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.provedor_id=fletero_id
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.fecha_mov=fecha_valorizacion  // ??  31/08/2010
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.nro_factura=aux_comprob
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.cod_mov=13 
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.sucursal=globals.gSucursal
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.letra="X"
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.fecha_vto=null
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.saldo=globals.greten_iva; 
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.provincia_id=ordenes_de_servicio_to_fletero.proveedor_to_ciudades.provincia_id
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.importe=globals.greten_iva
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.neto=globals.greten_iva  
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.iva=0 
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.iva_porc=0
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.cond_pago_id=0  
		ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr.concepto=
				"Ret.IVA de Ord.Servicio: " + utils.numberFormat(nro_orden,"###,##0")
					+ " - Chofer: " + ordenes_de_servicio_to_choferes.nombre
					+ " - Prov.: " + ordenes_de_servicio_to_proveedores_rel_ord_servicio.razon_social
					+ " - " + ordenes_de_servicio_to_proveedores_rel_ord_servicio.sucursal
    }
    //==================================================================	

	// hace el asiento
    
	//// grabar todo
	var grabo = databaseManager.saveData()
	if (grabo == true)
	{
		databaseManager.refreshRecordFromDatabase(foundset,0)
		databaseManager.refreshRecordFromDatabase(ordenes_de_servicio_to_fletero.proveedor_to_ctacte_pr,-1) 
		databaseManager.refreshRecordFromDatabase(ordenes_de_servicio_to_reten_certificados,0)  // 01/11/2010
		databaseManager.refreshRecordFromDatabase(fs_ctacte,-1) // 17/11/2010
		
		// 31/08/2010 globals.gMensaje ='Orden de Servicio '  + utils.numberFormat(globals.gSucursal,'0000') + '-' + utils.numberFormat(aux_comprob,'00000000') +  '\nGenerada correctamente' + '\nImprime:'
		// 31/08/2010 desde : informar las retenciones
		globals.gMensaje ='Orden de Servicio '  + utils.numberFormat(globals.gSucursal,'0000') + '-' + utils.numberFormat(aux_comprob,'00000000') + ' generada correctamente'
		if (globals.greten_ganan !=0 && globals.greten_ganan !=null)
			globals.gMensaje =globals.gMensaje + '-Retencion Ganancias $' + globals.greten_ganan;
		if (globals.greten_iva !=0 && globals.greten_iva !=null)
			globals.gMensaje =globals.gMensaje + '-Retencion IVA nro. $' + globals.greten_iva; 
		globals.gMensaje =globals.gMensaje + '-Imprime?'
		// 31/08/2010 hasta
		var resp=globals.DIALOGS.showQuestionDialog('Orden de Servicio valorizada',  globals.gMensaje,  "Si", "No" )
		if (resp == 'Si')
		{
			// imprimir ???
			//forms.op_cabecera_imp.controller.showPrintPreview(true)	
		}
	}
	else
	{
		databaseManager.rollbackEditedRecords()
		globals.gMensaje ='Error - Orden de Servicio No fue generada '
		globals.DIALOGS.showInfoDialog('Orden de Servicio',  globals.gMensaje,  "OK")
	}
	application.closeFormDialog('ord_serv_valor2')
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"BE2BF03B-FD9C-4AE1-B795-CDDD4498BA5A"}
 */
function onShow(firstShow, event) {
	fecha_valorizacion=new Date;
	globals.autosaveoff();
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"97470CDF-D585-44F0-9434-3BAB310EBBA8"}
 */
function cancela(event) {
	databaseManager.rollbackEditedRecords()
	application.closeFormDialog('ord_serv_valor2')
}
